treeview: Add _gtk_rbtree_node_get_index()
authorBenjamin Otte <otte@redhat.com>
Sat, 12 Nov 2011 04:15:53 +0000 (05:15 +0100)
committerBenjamin Otte <otte@redhat.com>
Wed, 16 Nov 2011 03:39:24 +0000 (04:39 +0100)
.. as a replacement for _gtk_rbtree_node_find_parity(). Instead of 1 or
0, the function now returns the index of node in the complete tree
(counting from the root). And this is of course identical to the row
number.

gtk/gtkrbtree.c
gtk/gtkrbtree.h
gtk/gtktreeview.c

index c8ff556043968cbb82103f5a354b11fa553233a5..714fb57ac2fc49a453f65b9f6824e0f09d468104 100644 (file)
@@ -988,12 +988,12 @@ _gtk_rbtree_node_find_offset (GtkRBTree *tree,
   return retval;
 }
 
-gint
-_gtk_rbtree_node_find_parity (GtkRBTree *tree,
-                              GtkRBNode *node)
+guint
+_gtk_rbtree_node_get_index (GtkRBTree *tree,
+                            GtkRBNode *node)
 {
   GtkRBNode *last;
-  gint retval;  
+  guint retval;  
   
   g_assert (node);
   g_assert (node->left);
@@ -1020,7 +1020,7 @@ _gtk_rbtree_node_find_parity (GtkRBTree *tree,
        }
     }
   
-  return retval % 2;
+  return retval;
 }
 
 gint
index 752fddc57c72b21c7b35af72396534db42f824f5..4bb9c4b553649aef9d299e26ffa0d53e72ed739c 100644 (file)
@@ -133,7 +133,7 @@ void       _gtk_rbtree_set_fixed_height (GtkRBTree              *tree,
                                         gboolean                mark_valid);
 gint       _gtk_rbtree_node_find_offset (GtkRBTree              *tree,
                                         GtkRBNode              *node);
-gint       _gtk_rbtree_node_find_parity (GtkRBTree              *tree,
+guint      _gtk_rbtree_node_get_index   (GtkRBTree              *tree,
                                         GtkRBNode              *node);
 gboolean   _gtk_rbtree_find_index       (GtkRBTree              *tree,
                                         guint                   index,
index 2da21a655e4f6cb5ca478ea37801e8d16d105bd3..22764b424ef2c6a17c6dc07dfaa0c28a91204be7 100644 (file)
@@ -4821,7 +4821,7 @@ gtk_tree_view_bin_draw (GtkWidget      *widget,
    * order, drawing each successive node.
    */
   
-  parity = !_gtk_rbtree_node_find_parity (tree, node);
+  parity = !(_gtk_rbtree_node_get_index (tree, node) % 2);
 
   do
     {
@@ -14558,7 +14558,7 @@ gtk_tree_view_create_row_drag_icon (GtkTreeView  *tree_view,
     {
       GtkRegionFlags row_flags;
 
-      if (_gtk_rbtree_node_find_parity (tree, node))
+      if ((_gtk_rbtree_node_get_index (tree, node) % 2))
         row_flags = GTK_REGION_ODD;
       else
         row_flags = GTK_REGION_EVEN;